home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 8 / Mac Magazin and MacEasy Magazine CD - Issue 08.iso / Sharewarebibliothek / Applikationen / Survival 6.0.3 ƒ / Survival Macros < prev   
Text File  |  1995-02-28  |  6KB  |  302 lines

  1. {This macros show how to use Survival macro commands for AUTOMATED ANALYSIS   
  2. The possibilities are only limited by your imagination. Remember that you   
  3. may use all Pascal standard functions within a macro. Probably you may need
  4. some book on elemental Pascal programming to take the maximun advantage}  
  5.  
  6. MACRO 'TimeDependent';
  7.  
  8. {This macro is to be used with Time-Dependent Analysis
  9. It must be the only macro or the FIRST macro in a multiple
  10. macro file. You may edit the code to adapt it to your needs.
  11. See also TIME MACRO 1 in the Macros folder}
  12.  
  13. begin
  14.  
  15.     FUNCTION
  16.          If rData[2] >= 650 then rVar[1]:= (rVar[1] - rMean[1]) else rVar[1]:= 0;
  17.             rVar[2]:= (rVar[2] - rMean[2]); {Fixed covariate = grade}
  18.   end;
  19. end;
  20.  
  21.  
  22.  
  23. MACRO 'Macro_Time-Dependent_Analysis'
  24.  
  25. begin
  26.  
  27.     RESET;
  28.     GETDATA('HD516:Survival 6.0:Data:Data.surv');
  29.     setStatus(1);
  30.     setTime(2);
  31.     selectVar(3,4);
  32.  varcode(2,1);{Var 3 is time-dependent; var 4 is fixed}
  33.  varLabel(3:'edad';4:'grado');
  34.     covariates(80.5, 4);{we use this covariate pattern to estimate probability of survival}
  35.     survplot('CoxModel');{Save the Model Plot}
  36.  title('PROSTATE CANCER:TEN YEAR SURVIVAL ANALYSIS');
  37.     backColor('white');
  38.     estimate;{Time dependent analysis is TERMINATED here. Other commands are ignored}
  39. end;
  40.  
  41. MACRO 'Kaplan-Meier'
  42.  
  43. begin
  44.  
  45.     reset;
  46.     getdata('Put here the path to access the file');
  47.  stat(-);{compute descriptive statistics for all variables in data array}
  48.     setStatus(1);
  49.     setTime(2);
  50.     survplot;{use always before the ESTIMATE command}
  51.     backColor('white');
  52.     setOutput('none');
  53.     estimate;
  54.  savepict('HD516:MyTest');{saves survival function}
  55.  intplot(1);{use always AFTER the estimate command}
  56.  savepict('HD516:Intervals');
  57. end;
  58.  
  59.  
  60. MACRO 'Macro_Strata'
  61.  
  62. begin
  63.  
  64.     reset;
  65.     getdata('Put here the path to access the file');
  66.     setStatus(1);
  67.     setTime(2);
  68.  selectvar(4);
  69.     setStrata(3, 5);{we have coded 3 groups in variable 5}
  70.  grouplabel(1:'Stage A-B';2:'Stage C';3:'Stage D');{put label to indentify the groups}
  71.     survplot;
  72.     backColor('white');
  73.     setOutput('none');
  74.     estimate;
  75.  savepict('strata');
  76.  logplot;
  77.  savepict('Log-Log');
  78. end;
  79.  
  80.  
  81. MACRO 'Macro_Test_1'{observe the result}
  82. var
  83.     i: integer;
  84.  
  85. begin
  86.     reset;
  87.     getdata('Put here the path to access the file');
  88.     setStatus(1);
  89.     setTime(2);
  90.     survplot;
  91.     setOutput('none');
  92.     for i := 3 to 5 do
  93.         begin
  94.             selectVar(i);
  95.             estimate;
  96.   savepict('Test1');
  97.   resplot;
  98.   savepict('Residual1');{save residual plots and close}
  99.         end;
  100.  clear;{clears the active output window}
  101.  RUNMACRO(3); {executes the Macro_Strata macro}
  102.  RUNMACRO(7); {executes the Cut_Point macro}
  103. end;
  104.  
  105. MACRO 'Macro_Test_2'{what is the difference respect to the macro above?}
  106. var
  107.     i, row, column, nvar: integer;
  108.  
  109. begin
  110.     setStatus(1);
  111.     setTime(2);
  112.  
  113. reset;
  114.     {getdata('Put here the path to access the file');}
  115.     get(row, column, nvar);
  116.     setStatus(1);
  117.     setTime(2);
  118.     survplot;
  119.     setOutput('none');
  120.     for i := 3 to 5 do
  121.         begin
  122.             set(row,column,0);{here is the key}
  123.             selectVar(i);
  124.             estimate;
  125.         end;
  126. end;
  127.  
  128. MACRO 'Macro_CutPoint'
  129.  
  130. begin
  131.  
  132.     reset;
  133.     {getdata('Put here the path to access the file');}
  134.     setStatus(1);
  135.     setTime(2);
  136.     setCutPoint(70.5, 3);{cut point value (70.5) for variable in column 3}
  137.     survplot;
  138.     backColor('white');
  139.     setOutput('basal');
  140.     estimate;
  141.  savepict('CutPoint');
  142. end;
  143.  
  144. macro 'Categories';
  145.  
  146. begin
  147. RESET;
  148. SETSTATUS(1);
  149. SETTIME(2);
  150. SELECTVAR(3,4);
  151. categories(1,4);{Transform Var4 into indicator variables}
  152. ESTIMATE;
  153. end;
  154.  
  155.  
  156. macro 'Macro_MakeBins'
  157.  
  158. begin
  159.  
  160.     reset;
  161.     getdata('Put here the path to access the file');
  162.     setStatus(1);
  163.     setTime(2);
  164.     MakeBins(3, 3, true, 60, 70, 80);{we recode var 3 into 4 categories}
  165.     setStrata(4,3);{stratified analysis}
  166.  grouplabel(1:'<60 YEARS';2:'60-69 YEARS';3:'70-79 YEARS'; 4:'=>80 YEARS');{put label to  
  167.  indentify the groups}
  168.  title('PROSTATE CANCER:STRATIFIED ANALYSIS BY AGE GROUPS');
  169.     survplot;
  170.     backColor('black');
  171.     estimate;
  172.  savepict('MakeBins');
  173.  logplot;
  174.  savepict('MakeBinsLog');
  175.  revert; {Restores original data}
  176. end;
  177.  
  178. MACRO 'Macro_Select'
  179.  
  180. var
  181. edad,status,grado,stage:integer
  182.  
  183. begin
  184.     RESET;
  185.     GETDATA('Put here the path to acces the file');
  186.     SETSTATUS(1);
  187.     SETTIME(2);
  188.     SELECTIF((rData[4] = 2) and (rData[5] = 3));
  189. ESTIMATE;
  190. end;
  191.  
  192. MACRO 'Macro_Omit_Compute'
  193.  
  194. var
  195. status,time,grade:integer;
  196.  
  197. begin
  198.     reset;
  199.     getdata('Put here the path to access the file');
  200.     setStatus(1);
  201.     setTime(2);
  202.     OMITIF((rData[1] = 1) and (rData[2] < 180));
  203.  COMPUTE
  204.       rData[2] := rData[2] - 180;{what would happen if you omit this command ?}
  205.     end;
  206.     SELECTIF(rData[2] > 0);{just in case}
  207.     backColor('white');
  208.     estimate;
  209. end;
  210.  
  211. MACRO 'Macro_Recode'
  212.  
  213. var
  214. grado,stage:integer;
  215.  
  216. begin
  217.     grado:= 4;
  218.  stage:= 5;
  219.     reset;
  220.     getdata('Put here the path to access the file');
  221.     setStatus(1);
  222.     setTime(2);
  223.     recode(grado:1:2;stage:2:3:-9);
  224.     MakeBins(3, 3, true, 60, 70, 80);
  225. end;
  226.  
  227. MACRO 'Macro_Compute'
  228.  
  229. var
  230. grado,stage,time:integer;
  231.  
  232. begin
  233.  time:= 2;
  234.     grado:= 4;
  235.  stage:= 5;
  236.     reset;
  237.     GETDATA('Put here the path to access the file');
  238.     SETSTATUS(1);
  239.     SETTIME(2);
  240. beep;
  241.     COMPUTE
  242. {access to vars in data file with rDAta[]}
  243. {access to selected vars for current test with rVar[]}
  244.  if (rDATA[4] = 2) and (rDATA[2] > 350) then rDATA[5]:= 9 else rDATA[5]:= -1;
  245.     rData[6]:= -9;
  246.         end;
  247.     MAKEBINS(3, 3, true, 60, 70, 80);
  248.  SETSTRATA(4,3);
  249.     beep;
  250.  ESTIMATE;
  251. end;
  252.  
  253. MACRO 'Macro_Compute_Mean';
  254. var
  255. i,j,rows,cols,nvar,index:integer;
  256. Mean:real;
  257. begin
  258. get(rows,cols,nvar);{gets number of cases, variables and selected variables for the test, if any}
  259. for j:= 1 to cols do
  260.     begin
  261.     Mean:= 0;
  262.         for i:= 0 to rows - 1 do
  263.             begin
  264.                 index:= i * cols + j;
  265.                 Mean:= Mean + gData[index];{notice that we use gData[] instead of rData[]}
  266.                 end;
  267.     Mean:= Mean/rows;
  268.  Write('Mean of Variable ', 'with value',j,' is ',mean, ' for a total of ',rows,' cases');
  269.     end;{For j}
  270. write('cr');
  271. end;
  272.  
  273. MACRO 'Macro_Compute_DS';
  274. var
  275. i,j,rows,cols,nvar,index:integer;
  276. sd,sigma1,sigma2:real;
  277. begin
  278. get(rows,cols,nvar);{gets number of cases, variables and selected variables for the test, if any}
  279. write('Standard Deviations are shown sequentially for variables 1 ..',cols);
  280. for j:= 1 to cols do
  281.     begin
  282.     sd:= 0;sigma1:= 0;sigma2:= 0;
  283.         for i:= 0 to rows - 1 do
  284.             begin
  285.                 index:= i * cols + j;
  286.                 sigma1:= Sigma1 + gData[index];
  287.                 sigma2:= sigma2 + sqr(gData[index]);
  288.    end;
  289.     sd:= sqrt((sigma2 - (sqr(sigma1)/rows))/(rows -1));
  290.  Write('S.D. :',sd);
  291.     end;{For j}
  292. end;
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.